/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import basicas.Materazzi;
import java.io.IOException;
import java.util.Timer;
import javax.microedition.lcdui.game.Sprite;

/**
 *
 * @author Marcio
 */
public class NegocioMaterazzi {

    public static final String DIREITA = "Direita";
    public static final String ESQUERDA = "Esquerda";
    public static final String BAIXO = "Cima";
    public static final String CIMA = "Baixo";
    private Materazzi materazzi;
    private Timer timer;
    private SpriteAnimationTask animator;
    public static final int SPEED = 1;
    private String ultimaDirecao = DIREITA;
    private int qntidadeAndada = 0;

    public NegocioMaterazzi(int[] qntdMovimento, int pX, int pY) {
        try {
            this.materazzi = new Materazzi(qntdMovimento, pX, pY);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        this.timer = new Timer();
        this.animator = new SpriteAnimationTask(this.materazzi.getSpriteMaterazzi(), false);
        this.timer.scheduleAtFixedRate(this.animator, 0, this.materazzi.getMaterazziDelay());
        this.visaoDirecaoDireita();
       // this.materazzi.getVisao().setPosition( this.materazzi.getSpriteMaterazzi().getX() +  this.materazzi.getSpriteMaterazzi().getWidth(),  this.materazzi.getSpriteMaterazzi().getY() + (( this.materazzi.getSpriteMaterazzi().getHeight()- this.materazzi.getVisao().getHeight())/2));
    }

    public NegocioMaterazzi(int[] qntdMovimento, int pX, int pY, String direcao) {
        this(qntdMovimento,pX,pY);
        this.ultimaDirecao = direcao;
        if(this.ultimaDirecao.equals(CIMA)){
            this.visaoDirecaoCima();
        }else  if(this.ultimaDirecao.equals(BAIXO)){
            this.visaoDirecaoBaixo();
        } else if(this.ultimaDirecao.equals(ESQUERDA)){
            this.visaoDirecaoEsquerda();
        } else if(this.ultimaDirecao.equals(DIREITA)){
            this.visaoDirecaoDireita();
        }
    }

    public Sprite getSpriteMaterazzi() {
        return this.materazzi.getSpriteMaterazzi();
    }

    public Sprite getSpriteVisao(){
        return this.materazzi.getVisao();
    }


    public void movimentar() {
        this.animator.forward();
    }
    
    public void visaoDirecaoEsquerda(){
         this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoEsquerda());
                this.materazzi.getVisao().setPosition(this.materazzi.getSpriteMaterazzi().getX() -this.materazzi.getVisao().getWidth(),this.materazzi.getSpriteMaterazzi().getY() + ((this.materazzi.getSpriteMaterazzi().getHeight()- this.materazzi.getVisao().getHeight())/2));
    }
    
    public void visaoDirecaoDireita(){
         this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoDireita());
                this.materazzi.getVisao().setPosition(this.materazzi.getSpriteMaterazzi().getX() + this.materazzi.getSpriteMaterazzi().getWidth(), this.materazzi.getSpriteMaterazzi().getY() + ((this.materazzi.getSpriteMaterazzi().getHeight() - this.materazzi.getVisao().getHeight()) / 2));
    }
    
    public void visaoDirecaoCima(){

        this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoCosta());
                this.materazzi.getVisao().setPosition(  this.materazzi.getSpriteMaterazzi().getX() + ((  this.materazzi.getSpriteMaterazzi().getWidth() - this.materazzi.getVisao().getWidth())/2),  this.materazzi.getSpriteMaterazzi().getY() -this.materazzi.getVisao().getHeight());
    }
    
    public void visaoDirecaoBaixo(){
           this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoFrente());
                this.materazzi.getVisao().setPosition( this.materazzi.getSpriteMaterazzi().getX() + (( this.materazzi.getSpriteMaterazzi().getWidth() - this.materazzi.getVisao().getWidth())/2),  this.materazzi.getSpriteMaterazzi().getY() +  this.materazzi.getSpriteMaterazzi().getHeight());


    }


    public void movimentarMaterazzi() {
        if (this.ultimaDirecao.equals(DIREITA)) {
            if (qntidadeAndada == 0) {
                this.materazzi.getSpriteMaterazzi().setFrameSequence(materazzi.getMaterazziDireita());
                this.materazzi.getSpriteMaterazzi().setTransform(Sprite.TRANS_NONE);
                this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoDireita());
                this.materazzi.getVisao().setTransform(Sprite.TRANS_NONE);
            }
            this.movimentar();
            this.materazzi.getSpriteMaterazzi().move(SPEED, 0);
            this.materazzi.getVisao().move(SPEED, 0);
            this.qntidadeAndada += 1;
            if (this.qntidadeAndada == this.materazzi.getQtdMovimento()[0]) {
                this.ultimaDirecao = CIMA;
                this.qntidadeAndada = 0;
                this.visaoDirecaoCima();
                
            }

        } else if (this.ultimaDirecao.equals(ESQUERDA)) {
            if (qntidadeAndada == 0) {
                this.materazzi.getSpriteMaterazzi().setFrameSequence(materazzi.getMaterazziEsquerda());
                this.materazzi.getSpriteMaterazzi().setTransform(Sprite.TRANS_NONE);
                this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoEsquerda());
                this.materazzi.getVisao().setTransform(Sprite.TRANS_NONE);
            }
            this.movimentar();
            this.materazzi.getSpriteMaterazzi().move(-SPEED, 0);
             this.materazzi.getVisao().move(-SPEED, 0);
            this.qntidadeAndada += 1;
            if (this.qntidadeAndada == this.materazzi.getQtdMovimento()[0]) {
                this.ultimaDirecao = BAIXO;
                this.qntidadeAndada = 0;
                this.visaoDirecaoBaixo();
                
            }
        } else if (this.ultimaDirecao.equals(BAIXO)) {
            if (qntidadeAndada == 0) {
                this.materazzi.getSpriteMaterazzi().setFrameSequence(materazzi.getMaterazziFrente());
                this.materazzi.getSpriteMaterazzi().setTransform(Sprite.TRANS_NONE);
                this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoFrente());
                this.materazzi.getVisao().setTransform(Sprite.TRANS_NONE);
            }
            this.movimentar();
            this.materazzi.getSpriteMaterazzi().move(0, +SPEED);
            this.materazzi.getVisao().move(0, +SPEED);
            this.qntidadeAndada += 1;
            if (this.qntidadeAndada == this.materazzi.getQtdMovimento()[1]) {
                this.ultimaDirecao = DIREITA;
                this.qntidadeAndada = 0;
                this.visaoDirecaoDireita();
               
            }
        } else if (this.ultimaDirecao.equals(CIMA)) {
            if (qntidadeAndada == 0) {
                this.materazzi.getSpriteMaterazzi().setFrameSequence(materazzi.getMaterazziCosta());
                this.materazzi.getSpriteMaterazzi().setTransform(Sprite.TRANS_NONE);
                this.materazzi.getVisao().setFrameSequence(materazzi.getVisaoCosta());
                this.materazzi.getVisao().setTransform(Sprite.TRANS_NONE);
            }
            this.movimentar();
            this.materazzi.getSpriteMaterazzi().move(0, -SPEED);
            this.materazzi.getVisao().move(0, -SPEED);
            this.qntidadeAndada += 1;
            if (this.qntidadeAndada == this.materazzi.getQtdMovimento()[1]) {
                this.ultimaDirecao = ESQUERDA;
                this.qntidadeAndada = 0;
                this.visaoDirecaoEsquerda();
               
            }


        }

    }

}
